package __3类型


/*
int8 			1 	-128 ~ 127
uint8(byte) 	1 	0 ~ 255
int16 			2 	-32768 ~ 32767
uint16 			2 	0 ~ 65 535
int32 			4 	-2147483648 ~ 2147483647
uint32 			4 	0 ~ 4294967295
int64 			8 	-9223372036854775808 ~ 9223372036854775807
uint64 			8 	0 ~ 18446744073709551615
int 		平台相关 	平台相关
uint 		平台相关 	平台相关
uintptr 	同指针 	在32位平台下为4字节，64位平台下为8字节*/
/*
需要注意的是，int和int32在Go语言里被认为是两种不同的类型，编译器也不会帮你自动
做类型转换，比如以下的例子会有编译错误：
var value2 int32
value1 := 64 // value1将会被自动推导为int类型
value2 = value1 // 编译错误
*/
/*
编译错误类似于：
cannot use value1 (type int) as type int32 in assignment。
使用强制类型转换可以解决这个编译错误：
value2 = int32(value1) // 编译通过
当然，开发者在做强制类型转换时，需要注意数据长度被截短而发生的数据精度损失（比如
将浮点数强制转为整数）和值溢出（值超过转换的目标类型的值范围时）问题。
*/

/*
两个不同类型的整型数不能直接比较，比如int8类型的数和int类型的数不能直接比较，但
各种类型的整型变量都可以直接与字面常量（literal）进行比较，比如：
var i int32
var j int64
i, j = 1, 2
if i == j { // 编译错误
fmt.Println("i and j are equal.")
}
if i == 1 || j == 2 { // 编译通过
fmt.Println("i and j are equal.")
}
*/